add missing constructor and methods