This method is now refactored