Base code finished, punching works on lan

preparing to test behind NATs