move to observer pattern.