functions are good