ordering the interface and delegate logic