-- Removed unitTests, need to rethink them.
-- Some refactoring with ReSharper.