adding some simple role to put various optimizations in