Need to try a different, less generic approach