Gross but working... Much improvement needed