impl the basic plan