cleanup
simplified, back to callbacks