Moved methods to baseclass
Added options
Improved encapsulation