move class constructor to abstract parent