Add YARD @since tags and refactor