don't need `type(self)`, can just use `self`

also ipython provides control over completion of things starting with `_`, maybe we should just do 

```python
dir(self) + [c for c in self.columns if isinstance(c, compat.string_types) and compat.isidentifier(c)]
```
because we still need to complete col names