Define properties, make constructor slimmer.

This also makes extending simpler, rather than you
having to extend the whole constructor.