slowly migrating logic over