explain better in readme, refactor