remove covert reference, and move prototype extensions to different file