added shitloads of stuff