refactored 8.3 slightly