Add a few more methods to component so it's easier to extend
Move 'recycle' event
Send delta time to the update of components
Update TODO