Add EventQueue and refactor router frontend to use client/cache

Agree, do you think it needs to be specified in greater detail?