types and attributes