moved methods to Moose roles