Several changes for implementation