Change package ctor to private, instead provide a static factory mth