fixed the issue that caused jasmine test to fail, and revise api exposed. 

I think that if the .subkeys or .key fields are not accessed by your code, then you can simply and safely drop them from the interface. If you do use them, then you should add a type for them that describes as much of them as you use, otherwise it's hard for people later to maintain. Happy to jump on a hangout/chat to clarify if helpful?