I have been looking through the documentation and reading the source code and despite there being a crystal class I cannot seem to find where its used. The propagate function relies on properties specific to the fiber object. If I want to create my own crystal and propagate trough it, how can I do so?