Added an amount argument
Changed to size_t
Did some refactoring
Did some more refactoring...