Backend separation implemented, not tested