adding web access (not a great implementation, but it works and is a bit extensible