API improvements, still some TODO's