comments and more factory methods