Add basic testing infrastructure + initial tests