notes on functions