add noemptyConstructor