Implement more generic Vector