Add TCP Server support, gemify the layout


I've added TCP Server support in, and added gem support.

I'll add in some test cases later on