WIP: the abstract backend module