add ~list(), transfer() and reverse()