should be abstract no?