First working version with just compilation