diff --git a/SwiftMetaModelGenerator/templates/meta_model.stencil b/SwiftMetaModelGenerator/templates/meta_model.stencil
index 8610d6c4e162baa3cb92390a2f3120e8263ba073..8d5fb988ac1fcd835b90cd786dae1b348a64f883 100644
--- a/SwiftMetaModelGenerator/templates/meta_model.stencil
+++ b/SwiftMetaModelGenerator/templates/meta_model.stencil
@@ -5,6 +5,12 @@
 // swiftlint:disable sorted_imports
 import Foundation
 
+protocol ValueAccessible {
+    func setValueByKey(key: String, value: Any?)
+    
+    func getValueByKey(key: String) -> Any?
+}
+
 // swiftlint:disable attributes file_length vertical_whitespace_closing_braces
 // swiftlint:disable identifier_name line_length type_body_length
 {% for class in classes %}
@@ -15,7 +21,7 @@ class {{class.name}}_
 {% endfor %}
 }
 
-extension {{class.name}} 
+extension {{class.name}} {% if not class.needsMethodOverride %}: ValueAccessible {% endif %}
 {
     @objc {% if class.needsMethodOverride %} override {% endif %} func setValueByKey(key: String, value: Any?)
     {