Use callbacks instead of lame timeout intervals
Bugs