Now fully functional, but ugly as sin