hide uneeded things, better naming, add examples