inprove the interface