cleaned up code, still needs to be commented