#6 Added observer and more backup functionality