class EnhancedRunnable implements Runnable {

    private final Runnable runnable;

    private final Executor executor;

    public EnhancedRunnable(Runnable runnable, Executor executor) {
        this.runnable = runnable;
        this.executor = executor;
    }

    public static EnhancedRunnable of(Runnable runnable, Executor executor) {
        return new EnhancedRunnable(runnable, executor);
    }

    @Override
    public void run() {<FILL_FUNCTION_BODY>}
}

        if (Objects.isNull(runnable)) {
            return;
        }
        AwareManager.beforeExecute(executor, Thread.currentThread(), this);
        Throwable t = null;
        try {
            runnable.run();
        } catch (Exception e) {
            t = e;
            throw e;
        } finally {
            AwareManager.afterExecute(executor, this, t);
        }
    
<no_super_class>