lots of extra features + bug fixes