Added observer pattern and base class
Added rendering on window