observer

observer-patten implemented, but probably wrong way. :/