adds GUI, business logic, error handling