restructure application to seperate out concerns a little more