input/output skeletons