breaking the single file into multiple files.
Gems and testing stuff.