Complete text-based version implemented.