add prototype, callback test