separating parsing and compiling.