Frank's lightweight portable components: a swiss-army knife for C++ developers