rework layering protocols on tcp.. inheritence was a bad idea