probably has something to do with unit circle