system basically working, should have been committed much earlier