mostly good, needs cleaning, needs fix format error