Added Observer pattern

basic button drawing works.
buttons work!