add compile and execute functions