updated basic idea