Add derive function that can take multiple parents