size now recursive (has to be)