everything works now, beautify later