Add new tests and new features