fixing layers of abstraction