Updated for quick integration with namespaces
Removed check for scalar values, const must be scalar
Removed extra unnexessary class
Made wrapper class abstract