single thread, initial understanding