Now the subscribe function needs to send the 3 functions (on-value, on-error, on-end) but the `on-end` is seldom needed. Would be cool to support both arities (3 and 4)