Refactor key handling

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>