refactor request emitter with mobile ability