refactor : split definitions