to properly build this we need it all