sketch of a oo interface (#33)