Working version pattern factory according Alexandrescu