refactored solo