I think these should be split into individual components to better match the interface of the python objects.