find_required_modules -> in
remove_children -> in
some encaplisation - sweet
encapsulated attributes
add some comments - ie do doc as we go