testing lamp abstraction