fixed and added bunch of stuff