API improved, incomplete