separation for the private methods - I can remove it, if you do not like it;