reindented code
spec fixed.
code organized: public props and private props.