update of interface and begin of implementation