modify the constructor