moved cache into stdlib