Tidying up. TODO: Move all listeners to sepearte classes.