no-constructor rule