This post is strongly related to that other one I wrote:
However the difference between these posts is, that this one is about behaviour and the other one is about design. (This is just a clarification, why I think that these posts are not duplicates)