private builder constructor.