Slightly updated.  Small bug still needs to be changed