cleaning up part 1...needs work right now.