Clean up, method names update and exception handling added. Integration tests added