added handling for every possible type. created test package and script to check goflect against it.