If your code is difficult to explain, it's a danger signal for anything other than a personal project. I'd be cautious labelling work a "prototype" if there weren't at least two people in the team with a decent grasp of what the code was doing and why.