break post into its own OO class, fixes #10