make separate emterpreters for each return type, and set up asm validation and testing