working app, needs validation, testing, and styling