reduced the number of the template parameter to make the use of the class simple.