Added new Decorator Class
Added functions, and made immutable