confused returnval and argument types