Moved all functions to use Moose as use of meta seems unavoidable