Update : refactoring, clean up