updates inspired by @sickill @ton