This will begin as an open project so I can learn how to properly structure an nTier application with strict separation of concerns