Basic GUI and validation works... somewhat.