rewrite List to support better Seq interface
fix usages of List