Listens and calls methods correctly depending on what changed.