Я почитал доку, и, должен сказать — видимо это лучший способ — они все довольно хорошо описывают в доке, за исключением (по моему мнению) одного момента — я до сих пор не всегда могу понять, откуда в ивент листенерах берутся те или иные параметры — в функции передаются параметры, но не всегда понятно, какие именно параметры передаются в каждый листенер.