AbstractBase definition