Edited... Has errors