added abstract methods to designer and planner. added factories. implemented some functionality in factories. created more empty concrete classes.