json circular dependency