implement item and key functions