goto's are bad.