it looks like the compiler is choosing the constructor that has the fewest number of arguments (verified by adding a bunch of dummy arguments (with defaults) to the secondary constructor)
i agree that choosing the primary over the secondary would make more sense