modified some definitions