use initialization list to replace boost.assign hack