how functions work