progress on general extensions
doctests pass