Draining attributes in structures

This is so that @cyli can work independently on implementing the algorithm while I work on filling these structures.
> I like None as the default, but it can't be provided as an attribute with a default because None is not a float. :|

The tests are breaking due to `draining_timeout`. Here, `characterstic` doesn't know the type yet. So `None` should be fine. Will check