Me: I can't implement that with signals because it is impossible to implement without bugs, so instead I will use this library5 minutes later: this library is implemented with signals