Basic solver