Refactor/re-write, and podify