implement log in, tdd, error messaging, validation