All you need is code. We can solve any problem by introducing an extra level of abstraction, except for the problem of too many levels of abstraction.