Self-Adjusting Top Tree Implementation maintains a forest that changes over time through edge insertions and deletions. This implementation focuses on the simplified Top Tree interface, which allows you to solve a number of interesting graph problems like finding common ancestors, the heaviest edge, maintaining the diameter, center, or median and other (mostly network flow) problems. Using Top Tree interfaces, all outline problems can be solved in a clean declarative way. This implementation uses adapting ST-trees as the underlying data structure, achieving O(log n) time per expose(v,w) operation. There is also a demo that shows an easy way to integrate the toptree library and the host application.