update source and prototype