updated to create all types