improve populate() + tests