Use pluigins to implement the features