Cyber foraging is a pervasive computing technique where small mobile devices offload resource intensive tasks to stronger computing machinery in the vicinity. This paper presents Scavenger-a new cyber foraging system supporting easy development of mobile cyber foraging applications, while still delivering efficient, mobile use of remote computing resources through the use of a custom built mobile code execution environment and a new dual-profiling scheduler. One of the main difficulties within cyber foraging is that it is very challenging for application programmers to develop cyber foraging enabled applications. An application using cyber foraging is working with mobile, distributed and, possibly, parallel computing; fields within computer science known to be hard for programmers to grasp. In this paper it is shown by example, how a highly distributed, parallel, cyber foraging enabled application can be developed using Scavenger. Benchmarks of the example application are presented showing that Scavenger imposes only minimal overhead when no surrogates are available, while greatly improving performance as surrogates become available.