Continue documentation, move custom interfaces into their own package