rearrange code for defining role constructors and initialization