refactoring and readme update