Remove casting, added abstract method on classes
Merge branch 'feature-config-spec-refactoring' into dev