initial implementation of auto compile. it doesnt work.
fix merge conflict