completed app; waiting to refactor