started work on implementing interfaces and abstract classes since the entire project got too complex too fast. 'Designing' with interfaces should help clear things up.