added array3d
fun with phantom types
working on basic types
fixed with wrapper type