Single-Threaded Implementation