better ipython interface