Rearrange code
Add readonly prop
Banish unnecessary refCons
Improve naming
Remove unnecessary prop