Added methods for callbacks, refactored code, more tests, changed name of 'find' to 'perform'.