new approach

almost done