Refactored with new decorators & funcs