brought spec over from transmog
added some methods based on testing over in transmog