refactoring, and readme update.