use different public apply method instead of public constructor for SSMany