punch in out functions complete