more work on implementing new API