Switched `New` interface to use size function. Hid some implementations.