Abstract code
Refactor code
Refactor code