Added bunch of things plus new test