Simplify code to be more "boilerplate" than a "hello world"
Move install instructions to another block
Add params to attributeChanged()