added base and implemented tcp listener