added named initializers