hard to workaround this self