improve login logic, clean interface, add modals