Updated with most functions for hw