rewritten except for liking i think