basic idea working