abstracted out button listener service, created button listener directive