Adding in some more dependencies.
Updating README
Breaking down into classes.