impl + bug fix