make cast spell more systematic