That was a lot of code for checking the args. If you use duck typing principals you may be able to clean that up significantly. For example:

```python
try:
    frame = args[0].reference_frame
except AttributeError:
    # isn't a rigid body
    try:
        point = args[0].masscenter
    except AttributeError:
        # must be ref frame and point
        point = args[0]        
        frame = args[1]
    else:
        frame = args[1]
else:
    point = args[0].masscenter
```