refactor: abstract and conclusion