This is way cleaner than using events, no?