boilierplate
modal directive