Added a designated initializer