added as1 subject and observer interfaces