refactoring and adding a README