added tests for random sampler and changed abstract class to interface
moved profiler