new initializer and over logic