write initial classes and methods and flesh out gem framework