added guide in 3.1 and refactored some stuff
haven't tested yet