add spec/lint/travis boilerplate
fix all lint issues and add per class docs