added additional classes. switch to singleton with environment