add append function