moved PorstProcess interface and converted it to a class