@Override protected void configure() { bind(new TypeLiteral<Function<Map<String, String>, List<NIC>>>() { }).to(MapToNICs.class); bind(new TypeLiteral<Function<Map<String, String>, Map<String, ? extends Device>>>() { }).to(MapToDevices.class); bind(new TypeLiteral<Function<Map<String, String>, Map<String, ? extends DriveMetrics>>>() { }).to(MapToDriveMetrics.class); bind(new TypeLiteral<Function<Map<String, String>, ServerMetrics>>() { }).to(MapToServerMetrics.class); bind(new TypeLiteral<Function<Device, String>>() { }).to(DeviceToId.class); }