changed abstract method names and added filename field