properly return compound types