layout: update footer
feat(data): implement data layer, still incomplete