i prefer to use the basic tools first, and add abstractions later.