Introduced interfaces; simplified class structure