class FileConfigSource extends AbstractConfigSource implements WatchableSource<Path>, ParsableSource, PollableSource<byte[]> {

    @Override
    public Optional<ConfigParser.Content> load() throws ConfigException {
        LOGGER.fine(() -> String.format("Getting content from '%s'", filePath));

        // now we need to create all the necessary steps in one go, to make sure the digest matches the file
        Optional<DataAndDigest> dataAndDigest = FileSourceHelper.readDataAndDigest(filePath);

        if (dataAndDigest.isEmpty()) {
            return Optional.empty();
        }

        DataAndDigest dad = dataAndDigest.get();
        InputStream dataStream = new ByteArrayInputStream(dad.data());

        /*
         * Build the content
         */
        var builder = ConfigParser.Content.builder()
                .stamp(dad.digest())
                .data(dataStream);

        MediaTypes.detectType(filePath).ifPresent(builder::mediaType);

        return Optional.of(builder.build());
    }

      FileConfigSource(Builder builder);

}