add working compile