Note currently all attribute names start with bs, we want to simplify it using val instead of bs.val, this makes code easier to read and less confusing to beginners.
However, we do piggyback the prefix of bs. to report unused warnings, in that case bs.typo will be reported as unused warning, without such prefix, the ability to report unused warning is limited. Thoughts?
(For the transition, both bs.val and val will be accepted)