interface to implement against for each package manager