Make Factory methods thread-safe
Improve documentation comments