[Large Commit] Refactored setup, and more CI support.