rewrite List System