Initial commit

Everything should be functional. Please issue a pull-request or open an
issue if not.