wrote default instances for the types