attribute types are now optional