incrememental, still not passing tests