added quite a few things