rename and remove abstract