init
updated with minor changes, expanded breadth of testing etc