refactored signals