added compilations functionality