u1
update
implemented many many methods
 reorganized and cleaner version with changes in design of the previous commit