spawns a new thread for handling input, added ServiceExecutor passed via reflection