update readme and generalize