further developed io methods