move stuff to interface