implement custom transformers