@weierophinney thanks -- I wasn't sure with responsibilities of all these methods and this seemed to be correct to me.
While talking about this module -- wouldn't it be possible to refactor it the way that we'll use 'halEntity' as variable/property/event paramater name everywhere where we refer to hal entity? Reason being -- I got confused many times if I'm actually accessing an entity returned from a resource or hal entity itself. It wasn't clear many times in the source code of the helper also.