Refactored for layout and updated to only push data if there is a change rather than every 30 secs