encapsulate, comment and organise