work compile