Figure out all the possible types for sources and what information is required. When a source type changes the visible fields should change. These fields should have validation only when they are visible