added web implementation (yet to be completed)