Finish first pass implementation of implement_interface