using template based vect + added random.hpp + other major changes