update to use signals