fixup! trying another implementation considering the caculation between behavoirs.