Refactor and better readme