just method changes for clarity and more commenting