adding Keeper class & factor out codes
factor out codes & update