added TONS of stuff