refactored and updated