structure backends via classes