decoupled JS store objects