added a tests and input etc