change the API to not differentiate between connect and update, also make it commands instead of events (semantically)