moving abstract plugin class to seperate plugin