nit: not POD objects are better be classes