Beginning restructuring for generic interface