lots of things added + fixed