Code works.
Bug fixes, still needs more unit tests.