low level abstraction, module based, code reuse patterns intended for reflecting the basics before starting with more complex meta programming approaches.