main infrastructure done