refactored yeah