added most of the hw