add complie fun