initial checkin
updates to reflect API changes
added documentation