the basic solution