better name for func