environments implemented