added and modified some shit