pre compile