update readme, refactoring