updated, some future work