initial idea
Initial imple