Modularize project. Needs more split ups of protocols and listeners package