Changed to manually managed memory

VS2013 seems to be bugged, and would require a move constructor to be
explicitly defined for a vector of uniqe_ptrs