95% completion without code refactorization, comments and general usage. Code needs touched up.