Fully functional, though still ugly