Changed to observer pattern. It looks awesome now.