linear prototype completely working