Put `BackEnd` and `Observer` in separate files