use class to specify type