refactored decorators and attempted to add tests to decorators