Identifying Abstraction Opportunities - Refactoring Toward Better Abstractions | OneNoughtOne