refactored assumes