explained callbacks and added todos