seems to work as expected (on simulated hardware)