Does this need to move into `models`?  We should try to keep models close to their corresponding test cases where possible.  (Even if it means redefining in some places)