ok this is gonna be harder than I thought, gonna shelve for now