start reworking global object implementation