dynamically register the fd providers

Split the structures out to their associated files.