Use event dispatching to avoid coupling!