added bunch of changes