First clean compile. Lost of bugs to fix yet