add interfaces and erasure