It is not enough.

1. Please make the class name reflect its intention. 

2. Something to thing about: 
> Its interface is exposed through class methods but the methods but the class uses instances variables which suggest that it is keeping state.

> When going all class methods usually seems like you don't want to keep state (which is the reason to go kind of functional), but you are actually keeping state, so, something smells weird

3. The entry method in the interface accepts four parameters, more than two parameters makes a class hard to read, either pass in an abstraction or use a hash as parameter, it may help make things clearer and cleaner.

Please go on and read this book as soon as possible:
![image](https://f.cloud.github.com/assets/135399/1510386/017c1b04-4a7f-11e3-9ffe-da1f82930bec.png)