serious refactoring
update readme