added and modified some things