described in JavaScript