raw impl should be pretty much done