updated environment client to be more extensible