Did more commenting and split a few methods