Added compose and complement