dispose removes closes both the dispatch and subscription stream
Future<Null> dispose() async { await _stateController.close(); }