first draft for splay tree
clean up a bit
clean up a bit 2
clean up a bit 3
using only diff
shortcut
recursive is shorter
final