Removed hard-coded traits.  now user-definable using variadic template args
Made object const
Use references not pointers