weak parent, fixed == string !@#, test isCancelled true in observer