javascript is a nightmare to work with and anyone who says otherwise is lying or a masochist