Lightweight Abstraction In Java