Original version git cloned from doshea. Updated for HW, 6/26.