change the constructor