major refactoring 2, readme updated