big refactor
update readme