preliminary compiler