complete javadoc, add comment, use Lists.reverse