Split supervisor into it's own package