added the ability to combine any functions together