more functionality: add user, more robust