Added visitor, junit tests, removed all bullshit.