expanded invoke.append* api with parent arg