finished part one, havent checked bugs