added bunch of code