update, debug, refactoring