overwrite default static properly and recurse better