cleaned up initializer