actions + basic io