clang no longer requires declaring this
mark private method and document properly
no need to check for non nil and key length