rewrote dependencies and cleaned up formatting