make authentication more generic, and permissions associated with accounts more fine-grained