adds tests and some graphy shit