Ready for review

finished (hopefully)