making operation properties readonly

this should avoid unintentional behaviour when accessing operation properties in delegate callbacks where a property may have changed elsewhere