Use directive for auto-scrolling behavior

Use directive for auto scrolling behavior

Cleaned up code
Allow no callback parameter on .add()