chore(): refactor directive, drop prototypes