added remove abstract method