more optimized initializers