added generic type switch + extension methods; added domain functionallity, updated config with this initializer