Refactoring / add PublishSubject