cleaned api more, still a lot of work left