abstract parent added