snuck in sign-extension bug just before last commit >.<