descending process
origin link
cleanup of common code