interpreted, delegate, observer patterns