support javascript interface