reimplment vector; TODO: copy construct, add methods. lookat still doesn't work