Added custom protocol ability & started implementing binary client