add more functions
add contraints for avoiding acyclic function compositions