supports :as with a role
updated todo and docs