Should output be a function that takes a $type param? Or is the output too different?