Controller - Model interaction and NPC class

Fixed controller Model interaction and also made Model observable.
Created new abstract class NPC to be the base of all NPCs.