code refactoring and final release