Re-organize the code structure

Make it more understandable to add new benchmark