added callback and filled in user spec