refactor and readme update