allow passing custom types
0.0.2