Separated Map and drawing logic. Implemented Observer/Observable.