WIP: done step-2, and started step-3