big changes - due to design patterns