cleaning up and filling out interfaces