refactore key