fixed abstract methods