Refactored to use signals; full test coverage