wrap codebase into a gem