first commit
override and abstract