Довольно крутое решение, если честно