várias melhrias e modificações