added a lot of stuff to make it easier