Abstracted out canAssimilate