fix various bugs with interface