* added Public IP abstract and concrete class