diff --git a/src/common/Makefile.am b/src/common/Makefile.am
--- a/src/common/Makefile.am
+++ b/src/common/Makefile.am
@@ -1,6 +1,6 @@
pkglib_LTLIBRARIES = libdistren.la
-libdistren_la_SOURCES = options.c options.h
+libdistren_la_SOURCES = options.c options.h remoteio.h remoteio.c
#evidently the following should not be LDADD, but LDFLAGS because automake doesn't like the idea of LDADD for libraries for some reason... or I am very confused
libdistren_la_LIBADD = @DISTLIBS_LIBS@
libdistren_la_CXXFLAGS = @DISTLIBS_CFLAGS@
diff --git a/src/common/remoteio.c b/src/common/remoteio.c
new file mode 100644
--- /dev/null
+++ b/src/common/remoteio.c
@@ -0,0 +1,46 @@
+/*
+ Copyright 2008 Nathan Phillip Brink, Ethan Zonca
+
+ This file is a part of DistRen.
+
+ DistRen is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ DistRen is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with DistRen. If not, see .
+*/
+
+#include "remoteio.h"
+
+int remoteio_open(const char *spec, struct remoteio **rem)
+{
+
+}
+
+
+size_t remoteio_read(struct remoteio *rem, void *buf, size_t len)
+{
+
+}
+
+size_t remoteio_write(struct remoteio *rem, void *buf, size_t len)
+{
+
+}
+
+
+int remoteio_close(struct remoteio *rem)
+{
+
+}
+
+
+#endif
+
diff --git a/src/common/remoteio.h b/src/common/remoteio.h
new file mode 100644
--- /dev/null
+++ b/src/common/remoteio.h
@@ -0,0 +1,44 @@
+/*
+ Copyright 2008 Nathan Phillip Brink, Ethan Zonca
+
+ This file is a part of DistRen.
+
+ DistRen is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ DistRen is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with DistRen. If not, see .
+*/
+
+#ifndef _DISTREN_REMOTEIO_H
+#defien _DISTREN_REMOTEIO_H
+
+/*
+ This file tries to abstract away getting a socket/fd that talks to a remote service
+ */
+
+struct remoteio
+{
+ int fd;
+
+};
+
+/* nonzsero return on error */
+int remoteio_open(const char *spec, struct remoteio **rem);
+
+/* blocks, returns 0 if len is 0 or on error */
+size_t remoteio_read(struct remoteio *rem, void *buf, size_t len);
+size_t remoteio_write(struct remoteio *rem, void *buf, size_t len);
+
+/* nonzero return on error */
+int remoteio_close(struct remoteio *rem);
+
+#endif
+