changed AJD interface to pass by value