reverted factory methods but removed data type processing