working declarative functions