partial progress on #3