Refactoring
generalising types
Reorganising methods