improved:key generating
changes:rename