add post.py and source.py, rest still in progress