Use compile so we aren't leaking scope