Added abstract class to fix compile error with maven package