moved stuff around

also added more interfaces