Add canReorder property so re-ordering can be turned on or off. Tidy up initialization methods.