ok now the structure is much better, while the output still sucks each of the layers is its own distinct object which interacts with the lower object through an aggregative relationship. that is we start the program by starting the presentation layaer which starts the logic which starts the data (presentation->logic->data) so that they can avoid eachother.