firstIO solution