added compilation functionality + execution