initial stab at cleaning up interface a bit