now accepting negative numbers. whoops