implement utility