Actuall perform the callbacks

Also fix adding them and check for an empty map.
dont run it in a go routine
fmt