fixed interfaces and abstract methods