initializer follows gem convention