Feature/refactor compile and execute