refining the interface