bluval engine refactoring