trying another implementation considering the caculation between behavoirs.