first signal sender implementation, now with user input vlaidation