code refactoring and realase ready