worker also handles the return values unvalidatedUser and badLogin