Refactorizing base methods and adding commments