more private methods and less boilerplate
less boilerplate
update readme
update comments and remove old files