Interface with backend and simplistic backend using the interface

I think you don't need to use defaultdict in this case.