javascript concrete abstractions