adding underscore, cache prototypes, util adding type checks