studing custom types