functions complete sans comments