callback : takes a callback function which can be asynchronous which is ran at the start of the creation of a component and then will re-run if any state is binded
dependency : list of all the states to listen to, and to re-run the callback when the states are updated