added #with_types helper