re-use component information and cache js