funtions explained which is what for.