1 and 2 almost done