added io extensions + tests