In the 1960s, assembly languages were made better by adding new things like library COPY, macros (bits of "special" code that got transformed to normal code before the program started running), running procedures (sets of directions given a name and saved for later), and variables (items given names and saved for later) from outside the program. This let people use some code in more than one project, and not have to worry about with hardware-specific problems (problems that only happen one one kind of computer) thanks to commands (names for directions) like READ/WRITE/GET/PUT.