update spo functions