I'm not sure that this achieves that. I think the xblock object that is returned is not created by the xblock itself but by the shim. I believe we still need to pin this contract down with @cpennington and then implement the story (https://edx-wiki.atlassian.net/browse/STUD-1513).