update + tests