added pure/nothrow to matrixstack