Change the interface and semantics a bit.