Issue #6, make it easier to require attributes
Merge remote-tracking branch 'origin/f.demo' into f.demo