changed from interface to abstract class, commons methods added (setup)

in response publish and others