add new HW3 features