protected abstract is possible