no bugs ... too many pragmas make it slow