actually two accessor functinons first() and last(), which automatically pick a proper implementation, either by iteration or by direct access
the buildsystem will now pick up and link all test cases according to the layer, e.g. backend tests will automatically be linked against the backend + library solely.