public Observable<Pair<IAutomationMethod, Float>> getKeyEvents() { ArrayList<Observable<Pair<IAutomationMethod, Float>>> keyEvents = new ArrayList<Observable<Pair<IAutomationMethod, Float>>>(); for (Map.Entry<Component.Identifier, IAutomationMethod> entry : automationMethodHashMap.entrySet()) { IRxAutomationProjection projector = identifierToProjectionMap.get(entry.getKey()); Observable<Pair<IAutomationMethod, Float>> keyEvent = projector.map(entry.getValue(), this.rxGamePad.getComponentById(entry.getKey())); keyEvents.add(keyEvent); } return Observable.merge(keyEvents); }