added observer, list, and subject models