move interface/abstraction layer into bricoleur fn