optimisation to datatype with methods (type constructor, getters, copy)
Merge branch 'datatype-opt'

Conflicts:
	build.sbt
Fix build