separate parser from builder, which is a new feature to come