TODO: alloc roles and words