break out Key class for better management (and reduction of accidental remote calls)