nearly all functionality is there now