cleaned up interface a bit