Beta phase

Almost have a working product, just need to iron out a few minor
problems.