Several changes... should have commited earlier