Implementation
Replaced new() with factory method
Merge remote branch 'fork/#873'