updates
adding new tests and functionality