improve: add prototype feature