Generalised the object orientated interface a little.