reimplement reorder_shells as singleton method