added factory method for roles