generally working app
still has bad names and bad organization