funtions_implimented