Put `BackEnd` and `Observer` in separate files

#6