update included 4 new functions
update: more functionality