Make backend methods pure virtual and fix storing of history in the process