complete copy prototype, pass simple tests.