update the constructor