polished the interface