add some type macros and vP