under construction, amended add function