added _next(data) to precompile()