statred threaded design
this is complicated