big refactor and prose.io