edit progress; refactoring & cleanup