whole functions