modify prototype significantly again, design revision three go