There seems to be a little bit of code overlap between the two implementations.