working on custom types