refactoring and drafts