Added ::ReturnType to everything and improved example code to reflect it