finished initial prototype