local.py is optional