fix hierarchy
move tests around
update todo