adding all uncommitted changes, not sure of everything in here (BAD BAD BAD)