change key structure and extract interface