Test that block gets called
Test interface instead of implementation
Separate the two backends into their own modules
Update tests for new backend

Translations are loaded in setup. Fewer tests with more assertions to
save setup overhead.