ok, my main concern is that this component might grow > 1000 lines quite fast. maybe move the implementation details to separate module(s)? but i guess this is just moving code around which can be done later as well.