actually pass types into client