style comments and structure
fix: crash if file doesn't exist
feat: extract file storage and introduce a HTTP API
refactor: Make PageInfo immutable
refactor: Make entities immutable