Some further progress

functions to be implemented