removed make_unique since it doesn't work on vs2012 yet