practice writing custom directives for ui components instead of third party resources