Key-value enomerators.

Todo:
+ Add error msg
+ Remove copy paste
+ Refactor big functions
+ Implement CurrentKey modificators