added the compiling functionality