implemented and tested core API changes, fixing several things along the way