modified by Tom, add comment