Logic changes, new User class, more responsive interface, better error handling