Add Interfaces and tests