add Factories to create KeyValues and DomainSpecificValues
add FactoryProvider interface
add simple model
add *~ to ignore list