integrating input/output stuff