As discussed in #6, it would be useful to have multiple signal types for different use cases. Will probably need to work this out in tandem with #7.