implementation of different types of random forests