Added static factory methods