withdrawal refactored so we no longer have to pass a negative value