Firstly I would recommend getting some freeform training. Understanding which commands and which options and how to define inputs are very important for this type of geometry. I would usually not try to do this in one feature but it may be possible. But usually better to do high and low ...