formatting code for readability, moving as many methods as possible to 'private'