partial progress on point 5