functions assignment

first commit
functions assignment

second commit
functions assignment

third commit
functions assignment

fourth commit
functions assignment

fifth commit
functions assignment

sixth commit
functions assignment

seventh commit
functions assignment

ninth commit
functions assignment

tenth commit