factored out evdev and amqp specific stuff into seperate module