These two need to be public, `Weighted` is basically designed as a way to pass named parameters to a function, that is, it's designed to be used outside this module.