signal prediction refactoring