Update file name of spec
Add callbacks
Add documentation for callbacks
Implement `:before` callback