refactorin but need sleep