added web-only solution