with full functions for Edison.py