Check out the observer. It's actually quite good.