good to go for now, need to sort out percentage and some edge cases