Custom types and providers