private Status addMembers(Class<?> busInterface) throws AnnotationBusException {
    for (Method member : members) {
      int type = INVALID;
      int annotation = 0;
      String accessPerm = null;
      BusMethod m = member.getAnnotation(BusMethod.class);
      BusSignal s = member.getAnnotation(BusSignal.class);
      AccessPermission ap = member.getAnnotation(AccessPermission.class);

      if (m != null) {
        type = METHOD_CALL;
        annotation = m.annotation();
      } else if (s != null) {
        type = SIGNAL;
        annotation = s.annotation();
      }
      if (type != INVALID) {
        if (ap != null) {
          accessPerm = ap.value();
        }

        String memberName = getName(member);
        Status status =
            addMember(
                type, memberName, getInputSig(member), getOutSig(member), annotation, accessPerm);
        if (status != Status.OK) {
          return status;
        }

        // pull out the DBus annotations
        BusAnnotations dbusAnnotations = member.getAnnotation(BusAnnotations.class);
        if (dbusAnnotations != null) {
          for (BusAnnotation busAnnotation : dbusAnnotations.value()) {
            addMemberAnnotation(memberName, busAnnotation.name(), busAnnotation.value());
          }
        }
      }
    }
    return Status.OK;
  }