Fully functional.  Need to implement step 5 of HW