tons of progress on #54

make the interface work out