Turning back to good old setter-based initialization to achieve more flexibility