add readme, add a common method in abstract base class