keys in config file are optional

if they are not specified, they are automaticaly generated
ViewModelProtectionHelper is not static and most of the methods are virtual
changed the expression generation code

it should support inteligent renames in VisualStudio!