framework for easy working with keyboard extension