basic working compile