repackaging, refactoring & temporary key input!