refactor and readme