Alpha Build

I use my version of abs because it saves the branch on checking whether x is < 0 or > 0. Since we're only using booleans, x will always be > 0.