added cache=TRUE, so compilation is faster