Added caching, registration, and refactored callback
switched to use bootstrap columns