compile and dist