Improved documentation and factory methods