propose to comment here what soul be implemented in abstract method