Further changes to make the gem more OO