Basically wrap up all the general function