first signature v1 done, and abstract class is now better