renamed 'reload' to 'redefine' and added more override ability