still need to figure out the initialization problem. cannot do waterfall on initialization