Move some rejoiceable logic into model