add overlay abstraction;