Huge refactor
update readme