marked readonly as per contract analyzer recommendation