fix the constructor interface