Most of basic functionality now complete