refactored to Moose, Module::Build and git