refactor to start moving properties / directives into a separate organized structure