Rewrite in proper factory format as per v2 & bump version