basic idea without any real implementation