We should probably move away from this giant if-else loop we have here in 1.0... it's whacky.